package com.theaf.core.api;

import com.theaf.core.api.model.Menu;
import com.theaf.core.api.model.UserInfo;
import org.springframework.data.jpa.domain.Specification;

import java.util.List;
import java.util.Map;

/**
 * 用户公共接口
 * @author songwenke
 * @date 2017-11-15
 *
 */
public interface UserComService {

    /**
     * 根据用户查询菜单
     * @param userId
     * @param busPlat 业务模板     *
     * @return
     */
    List<Menu> findMenuByUserId(Long userId, String busPlat);

    /**
     * 根据Ｉ用户查询权限
     * @param userId
     * @return
     */
    List<Menu> findAuthByUserId(Long userId);
    /**
     * 获取所有功能资源地址
     * @return
     */
    List<String> getAllFunUrl();

    /**
     * 查询机构范围
     * @param userId
     * @return
     */
    List<Long> findOrganRangeByUserId(Long userId);

    /**
     * 多条件查询用户
     * @param term
     * @param order
     * @return
     */
    List<UserInfo> findCustion(Map<String,Object> term, Map<String,Boolean> order);

    /**
     * 自定义查询用户
     * @param specification
     * @return
     */
    List<UserInfo> query(Specification specification);

    /**
     * 查询机构用户
     * @param organId
     * @return
     */
    List<UserInfo> findByOrgan(Long organId);

    /**
     * 查询指定机构和岗位的用户
     * @param organId
     * @param position
     * @return
     */
    List<UserInfo> findByOrganAndPosition(Long organId,Long position);
}
